#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>
//int get_days_of_month(int m, int y)
//{
//    int day = 0;
//    switch (m)
//    {
//    case 1:
//    case 3:
//    case 5:
//    case 7:
//    case 8:
//    case 10:
//    case 12:
//        day = 31;
//        break;
//    case 4:
//    case 6:
//    case 9:
//    case 11:
//        day = 30;
//        break;
//    case 2:
//    {
//        day = 28;
//        if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//            day++;
//    }
//    break;
//    return day;
//
//    }
//
//
//
//
//    }
//    int main() 
//    {
//       
//        int m = 0;
//        int y = 0;
//        scanf("%d %d", &m, &y);
//        int ret = get_days_of_month(m, y);
//
//        return  0;
//    }



//#include <stdio.h>
//int get_days_of_month(int y, int m)
//{
//    int day = 0;
//    switch (m)
//    {
//    case 1:
//    case 3:
//    case 5:
//    case 7:
//    case 8:
//    case 10:
//    case 12:
//        day = 31;
//        break;
//    case 4:
//    case 6:
//    case 9:
//    case 11:
//        day = 30;
//        break;
//
//    case 2:
//    {
//        day = 28;
//        if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//
//
//            day++;
//
//    }
//    break;
//
//    }
//
//    return day;
//
//
//
//
//
//
//}
//int main()
//{
//    int m = 0;
//    int y = 0;
//    while (scanf("%d %d", &m, &y) == 2)
//    {
//        int ret = get_days_of_month(y, m);
//        printf("%d\n", ret);
//
//    }
//    return  0;
//}





//int get_days_of_month(int y, int m)
//{
//    int day = 0;
//    switch (m)
//    {
//    case 1:
//    case 3:
//    case 5:
//    case 7:
//    case 8:
//    case 10:
//    case 12:
//        day = 31;
//        break;
//    case 4:
//    case 6:
//    case 9:
//    case 11:
//        day = 30;
//        break;
//    case 2:
//    {
//        day = 28;
//        if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//            day++;
//    }
//    break;
//    }
//    return day;
//}
//
//int main() {
//    int y = 0;
//    int m = 0;
//    while (scanf("%d %d", &y, &m) == 2)
//    {
//        int ret = get_days_of_month(y, m);
//        printf("%d\n", ret);
//    }
//
//    return 0;
//}




//#include<stdio.h>
//int get_days_of_month(int y, int m) 
//{
//    int day = 0;
//    switch (m)
//    {
//    case 1:
//    case 3:
//    case 5:
//    case 7:
//    case 8:
//    case 10:
//    case 12:
//        day = 31;
//        break;
//    case 4:
//    case 6:
//    case 9:
//    case 11:
//        day = 30;
//        break;
//
//       case 2: 
//        {
//        day = 28;
//        if (  (  (y % 4 == 0) && (y % 100 != 0) ) || (y % 400 == 0)   )
//
//
//            day++;
//
//         }
//             break;
//
//    }
//
//    return day;
//
//
//
//
//
//
//}
//int main()
//{
//    int m = 0;
//    int y = 0;
//    while (scanf("%d %d", &y, &m) == 2)
//    {
//        int ret = get_days_of_month(y, m);
//        printf("%d\n", ret);
//
//    }
//    return  0;
//}

#include <stdio.h>
int get_year_of_month(int y, int m)
{
    int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
    int day = days[m];
    if ((m == 2) && ((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) )
    {
        day++;
    }
    return day;
}




int main()
{
    int m = 0;
    int y = 0;
    while (scanf("%d %d", &y, &m) == 2)
    {
        int ret = get_year_of_month(y, m);
        printf("%d\n", ret);
    }

    return 0;
}